import {createI18n} from "vue-i18n";
import messages from './index'

// 获取语言设置
export const getLanguage = () => {
  let storLanguage: string | undefined;

  // 获取缓存语言
  const userLang = localStorage.getItem('lang');
  if (userLang) {
    try {
      storLanguage = userLang || 'zh-cn'; // 从用户信息中提取语言设置
      return storLanguage;
    } catch (error) {
      console.error("Failed to parse user data:", error);
    }
  }

  // 如果缓存中没有语言设置，则根据浏览器语言判断
  if (!userLang) {
    const language = (navigator.language || (navigator as any).browserLanguage).toLowerCase();
    const locales = Object.keys(messages);

    for (const locale of locales) {
      if (language.indexOf(locale) > -1) {
        return locale;
      }
    }
  }

  // 默认返回简体中文
  return 'zh-cn';
};

const i18n = createI18n({
  locale: getLanguage(), //默认中文 localStorage.lang ||
  globalInjection: true, // 全局注入 $t
  legacy: false,         // 使用 Composition API 模式，则需要将其设置为false
  messages
})

export default i18n